using ZR.Model;
using ZR.Model.System;
using ZR.Model.System.Dto;

namespace ZR.ServiceCore.Services.IService
{
    /// <summary>
    /// 风力数据PPI查询服务接口
    /// </summary>
    public interface IWindDataPPIService
    {
        /// <summary>
        /// 获取风力数据PPI查询列表
        /// </summary>
        /// <param name="query">查询条件</param>
        /// <param name="pager">分页参数</param>
        /// <returns></returns>
        PagedInfo<WindDataPPI> SelectWindDataPPIList(WindDataPPIQueryDto query, PagerInfo pager);

        /// <summary>
        /// 模糊查询风力数据PPI查询列表
        /// </summary>
        /// <param name="query">查询条件</param>
        /// <param name="pager">分页参数</param>
        /// <returns></returns>
        PagedInfo<WindDataPPI> SelectWindDataPPIListWithLike(WindDataPPIQueryDto query, PagerInfo pager);

        /// <summary>
        /// 获取风力数据PPI查询统计信息
        /// </summary>
        /// <returns></returns>
        object GetWindDataPPIStatistics();

        /// <summary>
        /// 根据时间参数获取对应的PPI表名列表
        /// </summary>
        /// <param name="timeParam">时间参数</param>
        /// <returns></returns>
        List<string> GetPPITableNames(string timeParam);

        /// <summary>
        /// 获取所有PPI表名列表
        /// </summary>
        /// <returns></returns>
        List<string> GetAllPPITableNames();

        /// <summary>
        /// 获取风力数据PPI历史数据列表（包含统计信息）
        /// </summary>
        /// <param name="query">查询条件</param>
        /// <param name="pager">分页参数</param>
        /// <returns></returns>
        PagedInfo<WindDataPPI> SelectWindDataPPIHistoryList(WindDataPPIQueryDto query, PagerInfo pager);
    }
}